草庐IT

mySQL Schema 设计建议

全部标签

java - 处理事件的设计模式

我正在尝试了解最适合用于处理一系列消息的(Java)设计模式。每条消息都包含一个“类型”,它确定应如何处理消息中包含的数据。我一直在考虑命令模式,但很难理解特定命令类的角色/相关性。到目前为止,我已经确定接收器将包含实现消息处理方法的代码。具体命令将根据消息类型实例化。但是,我不知道应该如何传递实际的消息数据。它是否应该通过具体命令执行方法调用适当的接收器方法传递给接收器构造函数?也许消息数据应该在接收者操作方法调用中传递?我对这一切还很陌生,所以任何指导都将不胜感激。这可能有帮助:publicinterfaceCommand{publicvoidexecute(Stringmsg);

java - 在java中为国际象棋游戏设计对象

我正在用Java设计一个国际象棋游戏(没有AI,只有用户控制),并且还在习惯OOP。我有两个问题。除了Game、Cell、Piece和Board对象之外,我还想拥有一个Player对象。我的问题是,我真的需要吗?当然我不需要,但是这两种选择都被认为是更好的设计吗?一方面,似乎Player对于包含有关玩家棋子的信息很有用,并且应该包含诸如takeTurn()之类的方法。(对于我的实现,我还想跟踪所有可能的移动,所以我将有一个方法getAllMoves())。另一方面,Player不就是对现有数据的重组吗?每个Piece都已经表明它属于哪个玩家。由于我的游戏不包含AI,因此takeTurn

java - 面向对象设计 : generic handling of sub classes that introduce new fields

这是一个我一直遇到的设计问题,所以我想我最终会把它放在那里,看看人们会如何处理它。问题如下:我确定了一个特定的类,它大部分描述了我将使用的对象的所有实例,包括行为和数据方面的。这很好,适用于基本对象。然后出现了一些其他类型的对象,它们需要相同的数据和行为,但还希望在这里或那里有一个额外的字段,或者一个额外的数据结构。让我们称这个类为Something:publicclassSomething{privateintid;privateStringfieldA;privateStringfieldB;privateListlist;//Thenwehavegetters,setters,a

java - 无监督命名实体识别(NER),带有自定义控制的词汇表,用于 Java 中的交联建议

我正在寻找一个Java库,它可以使用自定义受控词汇表进行命名实体识别(NER),而无需首先使用带标签的训练数据。我在SE上搜索了一些,但大多数问题都不具体。考虑以下用例:一位编辑正在CMS中输入文章(大约500字)。文本可能包含对特定域实体的引用(以纯文本形式)。例如:兴趣点的名称,例如酒吧、餐馆以及社区等。存在这些实体的受控词汇表(大约5.000个实体)。我想象一个实体是词汇表中的一个元组完成文本后,用户应该能够保存文档。这会触发工作流,通过与实体名称进行比较,根据词汇表扫描一段文本。不需要100%匹配:Jarao-winkler上的97%或其他(我不熟悉算法的NER使用的)可能就足

java - 什么时候应该让应用程序因为 Java 中的异常(设计问题)而崩溃?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion在大多数情况下,可以在Java中捕获异常,甚至是未经检查的异常。但是,不一定可以对此做些什么(例如内存不足)。对于其他情况,我试图解决的问题是设计原则问题。我正在尝试建立一个设计原则或一组规则,指示何时应该放弃异常情况,即使它被及时检测到。目标是尽量不让应用程序崩溃。是否有人已经就此集思广益并进行了交流?我正在寻找特定的通用案例和可能的解决方案或经验法则。更新到目前为止的建议:如果数据一致性受

具有泛型集合的类的 Java 适当扩展设计

假设我得到了A、B、C类B延伸A和C还扩展了A.现在我有2个不同的类,我们称它们为MyClassB和MyClassC与ArrayList的成员一起和ArrayList恭敬地。由于在MyClassB中进行了许多操作和MyClassC相同且仅在不同类型的ArrayList上完成,我想创建一个新的抽象类MyClassA它将在ArrayList上执行相同的操作对于两个类,自A是Action相同的公共(public)部分。所以我尝试在新的MyClassA中创建一个方法接收一个列表作为参数并应该对该列表执行操作的类。但是,我不能通过ArrayList到它期望的方法ArrayList.那么我该怎么做

行为附加到注释的 Java 设计问题

假设我通过使用@transactions注释来使用JPA。因此,为了让任何方法在事务下运行,我添加了一个@transaction注释,BINGO我的方法在事务下运行。为了实现上述目标,我们需要为该类提供一个接口(interface),并且该实例由某个容器管理。此外,我应该始终从接口(interface)引用中调用该方法,以便代理对象可以启动事务。所以我的代码看起来像:classBar{@InjectprivateFooIfoo;...voiddoWork(){foo.methodThatRunUnderTx();}}classFooImplimplementsFooI{@Overrid

Java模型对象设计

所以我一直在阅读一些EffectiveJava!本书中最鼓舞人心的部分之一是不可变对象(immutable对象)/构建器部分,布洛赫在该部分写了关于“构建器”的内容——类而不仅仅是POJO。注意:我在这里谈论的是模型对象:例如Article或Car。我之前是这样写这些对象的:publicclassCar{privateStringname;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnname;}}现在,正如您所看到的,这种设计在很多方面都有缺陷,它需要可变性,您必须首先使用构造函数然

java - Java EE 7 属性文件配置的最佳实践建议是什么?

应用程序配置在现代JavaEE应用程序中属于什么位置?人们有哪些最佳实践建议?我所说的应用程序配置是指设置,例如与其他设备上的服务的连接设置,包括外部设备(例如Twitter和我们的内部Cassandra服务器……用于主机名、凭据、重试等内容)以及与业务相关的设置逻辑(人们可能想在类中存储为常量的东西,例如某物过期的天数等)。假设:我们正在使用单个EAR文件部署到JavaEE7服务器(Wildfly8.1),该文件包含多个war和一个ejb-jar。我们将部署到各种环境:单元测试、本地开发安装、UAT的基于云的基础设施、压力测试和生产环境。我们的许多属性会因这些环境而异。如果这是人们推

java - 关于 Java 文件加密性能的建议

我正在做一些文件加密相关的工作。我能够加密/解密文件,但面临一个主要的性能问题。当我简单地读/写一个700MB大小的视频文件时,我的代码执行速度约为27-28MB/s。但是当我执行加密时(我目前正在使用PBEWithMD5AndDES,稍后我会更改)代码显示速度为9MB/s。请告知我在哪里可以改进。代码片段:intc=0,BUF_SIZE=8192;byte[]b=newbyte[BUF_SIZE];FileInputStreamfis;DataInputStreamdis;FileOutputStreamfos;DataOutputStreamdos;CipherOutputStre